package es.nadalgoyo.frikiquest;

import android.os.Bundle;
import es.nadalgoyo.frikiquest.dispatcher.MenuDispatcher;
import es.nadalgoyo.frikiquest.util.Constantes;
import es.nadalgoyo.frikiquest.util.Util;
import es.nadalgoyo.frikiquest.R;
import es.sergionadal.mvc.dispatcher.AbstractDispatcher;

public class CuestionApuestaActivity extends AbstractCuestionActivity {

	@Override
	AbstractDispatcher reponseListener(boolean isOK) {
		MenuDispatcher menuDis;
		Bundle bundle = new Bundle();

		int numeroApuestas = getBundle().getInt(Constantes.NUMERO_APUESTAS);
		bundle.putInt(Constantes.NUMERO_APUESTAS, numeroApuestas);
		getBundle().putAll(bundle);

		if (getComposicion().getRespuesta().isOK()) {
			snd = getSoundPlayerNewInstance(R.raw.wookie);
			snd.play();

			if (numeroApuestas > 0) {
				menuDis = getContinue(bundle, getPuntuacion()
						+ getComposicion().getPuntos());
			} else {
				return Util
						.getNotOk(this, getPuntuacion()
								+ getComposicion().getPuntos(),
								Constantes.TIPO_APUESTA);
			}

		} else {
			snd = getSoundPlayerNewInstance(R.raw.father);
			snd.play();
			int resul = getPuntuacion() - getComposicion().getPuntos();
			if (resul > 0) {
				if (numeroApuestas > 0) {
					menuDis = getContinue(bundle, resul);
				} else {
					return Util.getNotOk(this, getPuntuacion()
							+ getComposicion().getPuntos(),
							Constantes.TIPO_APUESTA);
				}
			} else {
				return Util.getNotOk(this, 0, Constantes.TIPO_APUESTA);
			}
		}

		return menuDis;

	}

	private MenuDispatcher getContinue(Bundle bundle, int puntos) {
		MenuDispatcher menuDis = new MenuDispatcher(
				CuestionApuestaActivity.this, bundle, MenuDispatcher.GO_APUESTA);
		menuDis.setPuntuacion(puntos);

		return menuDis;
	}
}